#ifndef __SCENE_EDITOR_H__
#define __SCENE_EDITOR_H__


#include <QtWidgets/QtWidgets>


#define SAFE_DELETE(p)  \
    {	\
        if (p)	\
        {	\
            delete (p);	\
            (p) = 0;	\
        }	\
    }


#define SAFE_DELETE_ARRAY(p)	\
    {	\
        if (p)	\
        {	\
            delete [](p);	\
            (p) = 0;	\
        }	\
    }


enum ItemType
{
    ITEM_UNKNOWN = 1000,
    ITEM_FOLDER,
    ITEM_PNG,
    ITEM_BMP,
    ITEM_JPG,
    ITEM_SCENE,
    MAX_ITEM_TYPE
};

enum ImageMode
{
    ImageBkgnd = 0,
    ImageMask
};


#define SCENE_EDITOR_VERSION_STR		"0.0.1"
#define SCENE_EDITOR_VERSION			0x01000000
#define SCENE_EDITOR_APP_NAME           "SceneEditor"

////////////////////////////////////////////////////////////////////////////////////////////////////
// 场景相关文件扩展名
#define SCN_INFO_FILE_EXT               ".scene"
#define SCN_IMG_INFO_FILE_EXT           ".image"
#define SCN_BLK_INFO_FILE_EXT           ".block"

////////////////////////////////////////////////////////////////////////////////////////////////////
// 场景文件字段
#define SCN_APP_KEY                     "Application"       /// 场景文件编辑器名称
#define SCN_VERSION_KEY                 "Version"           /// 场景文件版本
#define SCN_IMG_INFO_FILE_KEY           "ImageInfoFile"     /// 场景文件相关的图片信息文件
#define SCN_BLK_INFO_FILE_KEY           "BlockInfoFile"     /// 场景文件相关的障碍信息文件

////////////////////////////////////////////////////////////////////////////////////////////////////
// 场景图像信息文件字段
#define SCN_IMG_COUNT_KEY               "ImagesCount"       /// 总共图片数
#define SCN_IMG_BKGND_COUNT_KEY         "BkgndCount"        /// 背景图片数
#define SCN_IMG_MASK_COUNT_KEY          "MaskCount"         /// 遮挡图片数
#define SCN_IMG_BKGND_LIST_KEY          "BkgndImages"       /// 背景图信息列表
#define SCN_IMG_MASK_LIST_KEY           "MaskImages"        /// 遮挡图信息列表

#define SCN_IMG_NAME_KEY                "name"              /// 图像名称
#define SCN_IMG_X_KEY                   "x"                 /// 图像位置
#define SCN_IMG_Y_KEY                   "y"


class ImageInfo;

typedef QList<ImageInfo*>           QImageInfoList;
typedef QImageInfoList::iterator    QImageInfoListItr;



#endif  /*__SCENE_EDITOR_H__*/
